Client-server database systems are widely used today, in which a server provides a plurality of clients with database services by running a set of software called the database management system (DBMS). A client sends the server a search request containing specific search conditions, and the server responds to the requesting client by searching the database to retrieve and output data records that match with the specified search conditions. Some of those search conditions may specify a range of values of a particular attribute of data records, or a particular column of a data table, in the database.
As one solution for enhancing the responsiveness to search requests, a parallel database system employs multiple servers that operate in parallel under DBMS. Parallel database systems may be built with, for example, the Shared Everything (SE) architecture or Shared Nothing (SN) architecture. The SE architecture permits a plurality of servers to make direct access to a shared database that is implemented on a storage device accessible to every server. In contrast, the SN architecture previously divides the records of a database into a plurality of partitions for different servers, so that each server is supposed to make access to its corresponding partition. Since different partitions reside in different storage devices, one server makes access to other servers' partitions not directly, but with the intervention of those other servers. It is less frequent for a server to conflict with another server in database access. The SN architecture is thus advantageous over the SE architecture in terms of load distribution and suitability for throughput enhancement.
One proposed data retrieval system includes an application server and a database server, the application server containing a plurality of central processing unit (CPU) cores to execute data search operations. This application server divides a given search condition into multiple search conditions and assigns them to a plurality of search operation units each having a CPU core. Each search operation unit sends the database server a Structured Query Language (SQL) statement corresponding to a divided search condition. The application server then merges partial search results corresponding to the divided portions of the search condition. See, for example, Japanese Laid-open Patent Publication No. 2012-59215.
As seen from the above, the request response time of a database system is reduced by assigning a plurality of servers to a single search operation. To demarcate the scope of each server, the database may previously be divided into a plurality of partitions as done in the SN architecture. One thing to consider in this partitioning is that the number of participating servers may change during the operations of the parallel database system, because the system may be expanded with additional servers or encounter failure of existing servers. The noted partitioning of database, however, consumes extra time and resources to reestablish the partitions each time the number of servers changes.